1. T : Type
2. T List
3. u : T 4. v : T List
5. x, y:T.
5. no_repeats(T;v) adjacent(T;v;x;y) (z:T. z before yv (z before xv (z = x)))
6. x : T 7. y : T 8. no_repeats(T;[u / v])
9. 0 < ||v||
10. x = u & y = hd(v)
11. z : T 12. z before y [u / v]
z before x [u / v] (z = x)